package study.JavaBase;

/**
 * date:2025.10.11
 * title:java基本数据类型
 */
public class Java_2 {
    public static void main(String[] args) {
        DataExchange.exchangeData();
    }
}


/**
 * 数据类型
 *
 */
class DataTest {
    byte aByte = 1;
    short aShort = 2;
    int aInt = 3;
    int aD = 100;
    int aC = 100;
    int aE = 0x64;
    //long 类型的数据必须在数值后加上L，否则会作为整形判断
    long aLong = 4L;
    float aFloat = 1f;
    double aDouble = 2D;
    boolean aBoolean = true;
    char aChar = 'a';
    // 常量
    final double Pi = 2d;
}

/**
 * 类型转换
 * 1.boolean不能转
 * 2.高位数不能向低位数转，并且低位转高位会丢失精度
 * 3.对象类型不能转为不相关类的类型
 * 4.基本类型的包装类可以互相转换
 */
//常量
    //一个值是固定不变的量叫常量

class DataExchange{
    static void exchangeData(){
        char c1 = 'A';
        int i1 = c1;
        System.out.println(i1);
        char c2 = 'a';
        //注意这里跟js不同的是，字符和整数加法运算之后，返回的为整数
        int i2 = c2 + 1;
        System.out.println(i2);
        int i3  = 2;
        char c3 = 67+'1';
        System.out.println(c3);
        //如下所示，s1+s2为一个整形，java中会把小于int的转为int，大于的转为大于的值
        short s1 = 1;
        short s2 = 2;
        System.out.println(s1+s2);
        //包装类过渡转换(好像弃用了)
        float f1 = 3.15f;
        Double d1 = (double) f1;
        String c4 = "3.14";
        //老写法，666太垃圾了
        //double D4 = Double.valueOf(c4).doubleValue();
        //新写法，无敌666
        double D4 = Double.parseDouble(c4);
    }
}